testsuite: Add tests uploading the memorytextures
authorBenjamin Otte <otte@redhat.com>
Sat, 11 Sep 2021 20:50:09 +0000 (22:50 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 12 Sep 2021 03:54:37 +0000 (05:54 +0200)
Use a GL renderer and render_texture() them.

testsuite/gdk/memorytexture.c

index c3cbc71e2beae14c8b16212f0fb5db35147e2412..bb379da18c824c25c5299e60b66b4cd7ff89bd15 100644 (file)
@@ -1,8 +1,11 @@
-#include <locale.h>
-#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+
+#include "gsk/ngl/gsknglrenderer.h"
 
 #define N 50
 
+static GskRenderer *gl_renderer = NULL;
+
 typedef struct _TextureBuilder TextureBuilder;
 
 struct _TextureBuilder
@@ -412,10 +415,26 @@ add_test (const char    *name,
 int
 main (int argc, char *argv[])
 {
-  (g_test_init) (&argc, &argv, NULL);
+  GdkSurface *surface;
+  int result;
+
+  gtk_test_init (&argc, &argv, NULL);
 
   add_test ("/memorytexture/download_1x1", test_download_1x1);
   add_test ("/memorytexture/download_4x4", test_download_4x4);
 
-  return g_test_run ();
+  surface = gdk_surface_new_toplevel (gdk_display_get_default());
+  gl_renderer = gsk_ngl_renderer_new ();
+  if (!gsk_renderer_realize (gl_renderer, surface, NULL))
+    {
+      g_clear_object (&gl_renderer);
+      g_clear_object (&surface);
+    }
+
+  result = g_test_run ();
+
+  g_clear_object (&gl_renderer);
+  g_clear_object (&surface);
+
+  return result;
 }